﻿using System;

namespace System.Linq.Expressions
{
    [NonScript]
    public enum ExpressionType
    {
        Add,

        AddChecked,
        
        And,
        
        AndAlso,
        
        ArrayLength,
        
        ArrayIndex,
        
        Call,
        
        Coalesce,
        
        Conditional,
        
        Constant,
        
        Convert,
        
        ConvertChecked,
        
        Divide,
        
        Equal,
        
        ExclusiveOr,
        
        GreaterThan,
        
        GreaterThanOrEqual,
        
        Invoke,
        
        Lambda,
        
        LeftShift,
        
        LessThan,
        
        LessThanOrEqual,
        
        ListInit,
        
        MemberAccess,
        
        MemberInit,
        
        Modulo,
        
        Multiply,
        
        MultiplyChecked,
        
        Negate,
        
        UnaryPlus,
        
        NegateChecked,
        
        New,
        
        NewArrayInit,
        
        NewArrayBounds,
        
        Not,
        
        NotEqual,
        
        Or,
        
        OrElse,
        
        Parameter,
        
        Power,
        
        Quote,
        
        RightShift,
        
        Subtract,
        
        SubtractChecked,
        
        TypeAs,
        
        TypeIs,
        
        Assign,
        
        Block,
        
        DebugInfo,
        
        Decrement,
        
        Dynamic,
        
        Default,
        
        Extension,
        
        Goto,
        
        Increment,
        
        Index,
        
        Label,
        
        RuntimeVariables,
        
        Loop,
        
        Switch,
        
        Throw,
        
        Try,
        
        Unbox,
        
        AddAssign,
        
        AndAssign,
        
        DivideAssign,
        
        ExclusiveOrAssign,
        
        LeftShiftAssign,
        
        ModuloAssign,
        
        MultiplyAssign,
        
        OrAssign,
        
        PowerAssign,
        
        RightShiftAssign,
        
        SubtractAssign,
        
        AddAssignChecked,
        
        MultiplyAssignChecked,
        
        SubtractAssignChecked,
        
        PreIncrementAssign,
        
        PreDecrementAssign,
        
        PostIncrementAssign,
        
        PostDecrementAssign,
        
        TypeEqual,
        
        OnesComplement,
        
        IsTrue,
        
        IsFalse
    }
}
